package com.myjoje.config;


import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;

/**
 * 应用缓存，请注意自己清除
 */
public class AppCache {

    private static Logger logger = Logger.getLogger(AppCache.class.getName());

    /////////////////////////////////////excel导出相关缓存//////////////////////////////////

    /**
     * excel相关
     */
    private static Map<String, Map> excelParam = new ConcurrentHashMap<>();

    /**
     * 设置Excel参数
     */
    public static void setExcelParam(String key, Map map) {
        excelParam.put(key, map);
    }

    /**
     * 获取Excel参数
     */
    public static Map getExcelParam(String key) {
        return excelParam.get(key);
    }

    /**
     * 移除Excel参数
     */
    public static void removeExcelParam(String key) {
        excelParam.remove(key);
    }

    /////////////////////////////////////角色相关缓存//////////////////////////////////

    /**
     * 角色相关
     */
    private static Map<String, String> roleMap = new HashMap<>();

    /**
     * 设置角色
     *
     * @param roleCode 角色编码
     * @param roleId   角色id
     */
    public static void setRole(String roleCode, String roleId) {
        roleMap.put(roleCode, roleId);
        logger.info(roleMap.toString());
    }

    /**
     * 获取角色
     */
    public static String getRole(String roleCode) {
        logger.info(roleMap.toString());
        return roleMap.get(roleCode);
    }

    public static String getRoleRoot() {
        return getRole("root");
    }

    public static String getRoleAdmin() {
        return getRole("admin");
    }

    /**
     * 移除角色
     */
    public static void removeRole(String roleCode) {
        roleMap.remove(roleCode);
    }


    ///////////////////////////////用户当前机构缓存//////////////////////
    private static Map<String, String> currentDeptMap = new HashMap<>();

    /**
     * 设置用户当前机构
     */
    public static void setCurrentDept(String userId, String deptId) {
        currentDeptMap.put(userId, deptId);
        logger.info(currentDeptMap.toString());
    }

    /**
     * 获取用户当前机构
     */
    public static void getCurrentDept(String userId) {
        currentDeptMap.get(userId);
        logger.info(currentDeptMap.toString());
    }

    /**
     * 删除用户当前机构
     */
    public static void removeCurrentDept(String userId) {
        currentDeptMap.remove(userId);
        logger.info(currentDeptMap.toString());
    }

}
